package test0318;

/**
 * @author 兴趣使然黄小黄
 * @version 1.0
 * @date 2023/3/18 13:13
 * 有20个线程，需要同时启动。
 * 每个线程按0-19的序号打印，如第一个线程需要打印0
 * 请设计代码，在main主线程中，等待所有子线程执行完后，再打印 ok
 */
@SuppressWarnings({"all"})
public class Main01 {

    public static void main(String[] args) throws InterruptedException {
        Thread[] threads = new Thread[20];
        for (int i = 0; i <= 19; i++) {
            final int finalI = i; // 内部类使用外部的变量，必须是final修饰
            threads[i] = new Thread(() -> {
                System.out.println(finalI);
            });
        }
        // 启动线程
        for (Thread thread : threads) {
            thread.start();
        }
        // 同时执行20个线程，再等待所有线程执行完毕
        for (Thread thread : threads) {
            thread.join();
        }
        System.out.println("ok");
    }
}
